Entity Framework (EF) ব্যবহার করার সময়, ডেটাবেসের স্কিমা (Schema) বা স্ট্রাকচার পরিবর্তন করলে, সেই পরিবর্তনগুলি ডেটাবেসে প্রতিফলিত করতে মাইগ্রেশন ব্যবহৃত হয়। মাইগ্রেশন হল একটি সিস্টেম যা আপনাকে কোডে ডেটাবেসের পরিবর্তনগুলো ট্র্যাক করতে এবং সেই অনুযায়ী ডেটাবেস আপডেট করতে সাহায্য করে। EF মাইগ্রেশন, Code First পদ্ধতির সাথে বিশেষভাবে কার্যকর, যেখানে আপনি কোডের মাধ্যমে ডেটাবেসের কাঠামো নির্ধারণ করেন এবং EF সেই কাঠামোর পরিবর্তনগুলো ট্র্যাক করে।
Database changes tracking এর মাধ্যমে Entity Framework আপনাকে ডেটাবেস স্কিমা এর পরিবর্তন গুলি ট্র্যাক করতে এবং প্রয়োজন অনুযায়ী মাইগ্রেশন তৈরি করতে সাহায্য করে। EF-এর মাইগ্রেশন সিস্টেমে মূলত তিনটি কাজ করা হয়:
Entity Framework এর মাইগ্রেশন সিস্টেম ব্যবহার করে ডেটাবেসের কাঠামো পরিবর্তন এবং মডেল পরিবর্তন গুলোর জন্য প্রয়োজনীয় কোড তৈরি করা হয়। EF এর মাইগ্রেশন কাজ করে বিশেষত Code First পদ্ধতিতে, যেখানে আপনি প্রথমে কোড লিখে ডেটাবেস মডেল তৈরি করেন এবং পরে সেটিকে ডেটাবেসের সাথে সিঙ্ক করেন।
প্রথম মাইগ্রেশন তৈরি: প্রথমে Entity Framework মডেল তৈরি করার পর, প্রথম মাইগ্রেশনটি তৈরি করা হয়।
Command:
Add-Migration InitialCreate
এই কমান্ডটি ব্যবহার করলে InitialCreate নামের একটি মাইগ্রেশন ফাইল তৈরি হবে। এই ফাইলের মধ্যে প্রথম ডেটাবেস স্কিমা তৈরি করার কোড থাকবে।
ডেটাবেস আপডেট করা: মাইগ্রেশন তৈরি করার পর, আপনি ডেটাবেসকে আপডেট করার জন্য এই মাইগ্রেশন প্রয়োগ করতে পারেন।
Command:
Update-Database
এই কমান্ডটি চালালে, EF আপনার ডেটাবেসে নতুন মডেল অনুযায়ী পরিবর্তনগুলি প্রয়োগ করবে।
পরবর্তীতে মডেল পরিবর্তন করা: যদি আপনি পরে আপনার Entity ক্লাসে কোনো পরিবর্তন করেন (যেমন নতুন প্রপার্টি যোগ করা বা কোন টেবিল মুছে ফেলা), তবে এই পরিবর্তনগুলি ট্র্যাক করা এবং নতুন মাইগ্রেশন তৈরি করা যাবে।
উদাহরণ:
Add-Migration AddPhoneNumberToCustomer
ডেটাবেস আপডেট করা: নতুন মডেল পরিবর্তনগুলির জন্য ডেটাবেসে পরিবর্তন প্রযোজ্য করতে আবার Update-Database কমান্ড ব্যবহার করতে হবে।
Command:
Update-Database
মাইগ্রেশন ফাইল গুলো সাধারণত দুটি অংশে বিভক্ত থাকে:
Update-Database
কমান্ড চালান, তখন এই মেথডের কোডটি প্রয়োগ হয়।Down Method:
এই মেথডের মধ্যে পূর্ববর্তী অবস্থায় ফিরে যাওয়ার জন্য কোড থাকে। এটি সাধারণত ডেটাবেসে পূর্ববর্তী স্ট্রাকচার ফিরিয়ে আনার জন্য ব্যবহৃত হয় (যেমন, নতুন টেবিল বা কলাম মুছে ফেলা)।
উদাহরণ:
public partial class AddPhoneNumberToCustomer : DbMigration
{
public override void Up()
{
AddColumn("dbo.Customers", "PhoneNumber", c => c.String());
}
public override void Down()
{
DropColumn("dbo.Customers", "PhoneNumber");
}
}
যদি আপনি একটি মাইগ্রেশন পূর্বাবস্থায় ফিরিয়ে নিতে চান, তাহলে Update-Database কমান্ডের সাথে -TargetMigration
প্যারামিটার ব্যবহার করতে পারেন।
Update-Database -TargetMigration: "PreviousMigration"
এটি ডেটাবেসকে পূর্ববর্তী মাইগ্রেশন স্টেটসে ফিরে নিয়ে যাবে।
ডেটাবেস মাইগ্রেশনের সময় আপনি ডেটা সিডিংও করতে পারেন, যা দিয়ে আপনি ডেটাবেসে স্বয়ংক্রিয়ভাবে ডেটা ইনসার্ট করতে পারেন। Entity Framework এ ডেটা সিডিং করতে Seed মেথড ব্যবহার করা হয়।
protected override void Seed(MyDbContext context)
{
context.Customers.AddOrUpdate(
c => c.Name,
new Customer { Name = "John Doe", City = "Dhaka" }
);
}
এই কোডটি ডেটাবেসে Customer টেবিলের জন্য নতুন রেকর্ড যোগ করবে বা পুরনো রেকর্ড আপডেট করবে।
AddPhoneNumberToCustomer
বা AddAddressToUser
, যাতে ভবিষ্যতে ট্র্যাকিং এবং মেইন্টেনেন্স সহজ হয়।Entity Framework এর মাইগ্রেশন সিস্টেম ডেটাবেসের পরিবর্তনগুলো ট্র্যাক করতে এবং সেই অনুযায়ী ডেটাবেস আপডেট করতে সাহায্য করে। মাইগ্রেশন ব্যবহার করলে আপনি সহজে কোড এবং ডেটাবেসের স্কিমার মধ্যে সিঙ্ক রাখতে পারবেন এবং ডেটাবেসে কোনো পরিবর্তন আনার সময় অটোমেটেড উপায়ে তা প্রয়োগ করতে পারবেন।
common.read_more